package listeners;

import interface_grafica.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.ResultSet;
import java.sql.SQLException;

import javax.swing.JOptionPane;

import banco.Queries;

import socios.Endereco;
import socios.Socio;

public class ListenersTelaEdicaoSocio implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {

		TelaPrincipal frame = TelaPrincipal.getInstance();
		TelaEdicaoSocio tela = TelaEdicaoSocio.getInstance();
		Queries query = new Queries();

		if (e.getSource() == tela.getBtSalvar()) {

			String rua = tela.getRuaESocio();
			String bairro = tela.getBairroESocio();
			String cep = tela.getCepESocio();
			String numeroCasa = tela.getNumeroESocio();
			String complemento = tela.getComplementoESocio();
			String telefone = tela.getTelefoneSocio();
			String id = tela.getIdSocio();

			Endereco endereco = new Endereco(rua, bairro, numeroCasa, telefone,
					cep, complemento, 0, null);

			String nome = tela.getNomeSocio();
			String cpf = tela.getCpfSocio();
			String identidade = tela.getIdentidadeSocio() + " "
					+ tela.getUfSocio() + " " + tela.getOrgaoESocio();
			String dataNascimento = tela.getNascimentoSocio();
			String nomeMae = tela.getMaeSocio();
			String nomePai = tela.getPaiSocio();
			String numeroIdentificacao = tela.getIdSocio();
			String email = tela.getEmailSocio();
			String naturalidade = tela.getNaturalidadeSocio();
			String profissao = tela.getProfissaoSocio();

			// sexo
			char sexo;
			if (tela.getjRadioButton1().isSelected())
				sexo = 'f';
			else
				sexo = 'm';

			int tipoSocio = tela.getTipoSocio().getSelectedIndex();
			int estadoCivil = tela.getEstadoCivilSocio().getSelectedIndex();
			int filho = tela.getFilhosSocio().getSelectedIndex();
			int escolaridade = tela.getEscolaridadeSocio().getSelectedIndex();

			Socio novoSocio = new Socio(nome, cpf, identidade, sexo, tipoSocio,
					profissao, escolaridade, estadoCivil, filho,
					dataNascimento, nomeMae, nomePai, endereco,
					numeroIdentificacao, email, naturalidade);

			// INSERIR NO BANCO

			String tabela = "socio";
			
			String valores = "nome='" + novoSocio.getNome() + "', cpf='"
					+ novoSocio.getCpf() + "' , identidade='"
					+ novoSocio.getIdentidade() + "' , sexo='"
					+ novoSocio.getSexo() + "' , profissao='"
					+ novoSocio.getProfissao() + "' , nomemae='"
					+ novoSocio.getNomeMae() + "' , escolaridade='"
					+ novoSocio.getEscolaridade() + "' , estadocivil='"
					+ novoSocio.getEstadoCivil() + "', filho='"
					+ novoSocio.getFilho() + "', rua='"
					+ novoSocio.getEndereco().getRua() + "', bairro='"
					+ novoSocio.getEndereco().getBairro() + "', cep='"
					+ novoSocio.getEndereco().getCep() + "', numero='"
					+ novoSocio.getEndereco().getNumeroCasa()
					+ "', complemento='"
					+ novoSocio.getEndereco().getComplemento()
					+ "', nomepai='" + novoSocio.getNomePai()
					+ "', datanascimento='" + novoSocio.getDataNascimento()
					+ "', naturalidade='" + novoSocio.getNaturalidade()
					+ "', email='" + novoSocio.getEmail() + "', telefone='"
					+ novoSocio.getEndereco().getTelefone()
					+ "', tiposocio='" + novoSocio.getTipo() + "'";

			String condicao = "codsocio='" + id+"'";
			try {
				query.atualizar(tabela, condicao, valores);
				JOptionPane.showMessageDialog(null,
						"Atualizacao feita com sucesso!");

			}catch (SQLException e1) {
				JOptionPane.showMessageDialog(null,
						"Erro ao realizar atualizar!", "Associex",
						javax.swing.JOptionPane.ERROR_MESSAGE);
				e1.printStackTrace();
			}
		} 
		
		
		else if (e.getSource() == tela.getBtRemover()) {

			String id = tela.getIdSocio();
			String nome = tela.getNomeSocio();
			String cpf = tela.getCpfSocio();

			String tabela = "socio";
			String condicao = "nome='" + nome + "' AND codsocio='" + id
					+ "' AND cpf='" + cpf + "'";

			try {
				query.remover(tabela, condicao);

				JOptionPane.showMessageDialog(null, "Removido");

				TelaConsultaSocio tela2 = TelaConsultaSocio.getInstance();

				String tabela2 = "socio";
				String condicao2 = "true";

				try {
					ResultSet rs2 = query.consultar(tabela2, condicao2);
					tela2.limpaDtm();
					if (rs2.next()) {
						while (rs2.next()) {

							String id2 = String
									.valueOf((rs2.getInt("codsocio")));
							String nome2 = rs2.getString("nome");
							String tipo2;

							if (rs2.getInt("tipoSocio") == 1) {
								tipo2 = "Diretor";
							} else {
								tipo2 = "Associado";
							}

							tela2.getDtm().addRow(
									new Object[] { id2, nome2, tipo2 });
						}
						tela2.setBounds(10, 11, 1063, 557);

						frame.getPanel().removeAll();
						frame.getPanel().add(tela2);
						frame.repaint();
						frame.validate();
					}

					else {
						TelaCadastroSocio tela3 = TelaCadastroSocio.getInstance();
						tela3.setBounds(10, 11, 1063, 557);
						frame.getPanel().removeAll();
						frame.getPanel().add(tela3);
						frame.repaint();
						frame.validate();
					}
				} catch (SQLException e1) {
					e1.printStackTrace();
				}

			} catch (SQLException e1) {
				JOptionPane.showMessageDialog(null, "Erro ao remover");
				e1.printStackTrace();
			}
		}
	}// actionPerformed

	private void LimparDadosTela() {
		/*
		 * TelaCadastroSocio tela = TelaCadastroSocio.getInstance();
		 * 
		 * 
		 * tela.getRbNormal().setSelected(true);
		 * tela.getComboxTipo().setSelectedIndex(0);
		 * tela.getTextDescricao().setText("");
		 * tela.setTextId(Chamado.getCodigo());
		 */

	}// LimparDadosTela()

}